home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
telecomm
/
zmdm_src.arc
/
ZMDM.DOC
< prev
next >
Wrap
Text File
|
1988-06-26
|
28KB
|
723 lines
zmdm.doc, v1.6 ++jrb
ACKNOWLEDGEMENTS
ZMDM was derived from rz/sz for Unix posted by
Chuck Forsberg (...!tektronix!reed!omen!caf ). We
thank him for his excellent code, and for giving
us permission to use and distribute his code and
documentation.
The code for detecting baud rate at startup is courtesy
of Brian Katzung (katzung@laidbak.UUCP). Thanks very
much!
Andy Nicola did a lot of testing of the new features.
Thank You very much!
Thanks to the many users on the net who wrote in.
----------------------------------------------------------------------------
Enhancements since V1.2: (the last Usenet release).
o Some cleanup, moved common things around.
Some cosmetic additions.
o MWC 3.0 compatible. The sample MW makefiles
reflect the setup required for MWC V 3.0.6.
o Manx Aztec C compatible. Tested with V 3.6a
of the compiler. Produces the smallest code
of all the compilers tested. See config.h,
makefile.man and makefman.sta.
CAUTION: for MegaST and 4Meg ST owners--
The Manx Version will not work correctly
for you due to a bug in the start up file
-- we are still trying to figure out exactly
what the problem is!
o Auto Baud Rate detection on startup:
Previously ZMDM would set the baud rate
to a compile time configurable rate on
startup (it needed to know the baud rate
to determine its default packet size). Thanks
to code contributed by Brian Katzung, now it
detects the baud rate on startup.
Of course you can set the baud rate
within ZMDM (by hitting '<HELP>' 'b' ).
o Compile time option to use all available memory
as recv/send buffer. See DYNABUF, LEAVEALONE and
MINACC preprocessor symbols in config.h. If you
prefer to use a fixed size buffer, this is still
possible by not #define'ing DYNABUF and setting
BBUFSIZ. MegaST OK - thanks Andy Nicola.
o Stand Alone versions of RZ and SZ can be made
by compiling the sources with the preprocessor
symbols 'STANDALONE' #define'ed. See the makefile
'MAKEFILE.STA' for more details.
Stand Alone versions DO NOT do any command line
argument expansions for wild cards or directories
(unlike the integrated ZMDM).
Stand Alone versions tested from within Gulam,
Flash and Intersect. Thanks to Andy Nicola for
testing these features.
o Remote versions of ZMDM, RZ and SZ can be made by
compiling the sources with the preprocessor symbol
'REMOTE' #define'ed. A remote version listens and
does all its I/O thru the serial port. Of course
it has to be fired up from console. One of our
area BBS's provides this as a D/L option, where
the BBS program execs a remote ZMDM, and one you exit
you return back to the BBS program.
o Added -B (note: uppercase B) option to both RZ and SZ.
the -B function is a binary mode override, that disregards
the extension when deciding the transfer mode. This is
useful when say you are backing up your whole disk
to say a Unix host. (backup the exact image of the files),
or doing St-to-St type transfers.
o Now compatible with the PD DLIB library. The
pre-processor symbol DLIBS must be defined. Only
tested with the Alcyon version of the library.
o Added the phone module (a simple dialer with a
telephone numbers directory). This module is
only compiled in if the preprocessor symbol
'PHONES' is #define'ed. For those of you who
are familiar with XMDM, this module was directly
ripped out of there, with a small bug fix that
prevented it from running under TurboSt.ACC.
o Long packet lengths now allowed at slower baud rates
rather than insisting on using the default as the max
packet length. For instance
sz -l 1024 files..
will now send 1024 byte packets at low baud rates (<= 2400).
The corresponding change has been made to the unix
end of the software too.
o TurboSt.ACC note:
The high rez toggle (25/50 lines) on a
monochrome monitor will NOT work is TurboSt.ACC is
installed. The problem is on the TurboSt.ACC end. Using
the high rez toggle does'nt cause any ill-effect, it just
does not do anything.
Enhancements since V1.0:
o (This enhancement is only present when
you compile with the pre-processor symbol
`RECURSE' defined - see the makefile's)
sz now takes a directory as an argument.
If the name of a directory is given as an
argument, then the contents of that directory
and all its subdirectories are sent. A new
option to sz is '-P <dir or file>'
(capital 'P' not 'p'), that
'prunes' the expansion of a directory. For
example if you wanted to send all the files
in the 'C' partition of your hard disk, except
the 'tmp', 'usr' and 'foo\bar' subdirectories, you would
issue the following command in the transfer
shell:
sz -f -P c:\tmp -P c:\usr -P c:\foo\bar c:\
Notice that you may specify multiple -P 'rune
options. The argument to the -P option may also be
the name of a file that you want to prune off.
Also note that to send full path names
to the remote end, the '-f' option is required,
otherwise the remote end will create all the
files in its current working directory. (Also
see CWRU extension to Unix 'rz', where 'rz' when
receiving full path names (ie. when you specify the
'-f' option to sz on the ST end) will create all
subdirectories required to receive the file). The
ST 'rz' always creates all subdirectories required
to receive a path when the other end is sz'ing with
the '-f' option. Also note that in both the rz's
all subdirectories are created relative to the
current working directory, even though the path may
specify an absolute path.
o File name mapping is slightly changed from V1.0.
When receiving a filename that has multiple '.'s
all but the last '.' is replace with an '_'. So
'foo.bar.ext' becomes 'foo_bar.ext'. Similarly
'123.456.789\aaa.bbb.ccc' becomes '123_456.789\aaa_bbb.ccc'.
As in V1.0, the filename and extension (of each
component of a path name) are truncated to 8 and 3
characters respectively. So '123.456789.ext\foobarbaz'
becomes '123_4567.ext\foobarba'. Also note that
while sending, '\'s are sent as '/'s. The ST drive
specifier part of a path name is never sent.
So 'c:\file.ext' is sent as '/file.ext' (remember:
that full pathnames are only sent when the '-f'
option is specified to 'sz').
o Many bug fixes since V1.0!
----------------------------------------------------------------------------
Zmdm consists of two main components:
o The terminal emulator
o The transfer shell
- The terminal emulator emulates a 80*25 terminal
(or optionally the 80*50 mode on Mono systems only).
It uses the escape codes of the bios built in enhanced
vt52 emulator. For UN*X users i have included the
termcap entry that we use.
- The transfer shell lets you send/receive files using
Xmodem/Xmodem-CRC/Xmodem-1K/Ymodem or Zmodem protocols.
In addition it provides UN*X csh like command for your
convenience, and does (TOS style) wild-card handling,
and (only single) quoting of arguments. Please note that
this is a convenience feature, and in no way does it
pretend to be compatible with csh or any other shell.
See the accompanying file YMODEM.DOC by Chuck Forsberg,
for details of the above transfer protocols.
This note describes the commands available from the
"transfer shell". The transfer shell is the built in command line
interface. In case you are wondering why we choose to
use a command line interface, the answer is quite simple.
The functions available have so many options and combinations
thereof, that it would be totally impractical if not impossible
to put them in menus/dialogues (each menu will have to be at least
3 levels deep). Of course it is much easier to type something
like 'sz -l 128 -L 128 *.c' than answering the at least three
dialogues required to pick up the same info. You enter the
transfer shell from the terminal emul